package app.model;

import java.util.List;

import app.datavalue.DeliveryRepMsgInfo;
import app.datavalue.HandlingInfo;
import app.datavalue.MsgInfo;
import app.model.StorageResult;

public interface IMessageStorage {

	public abstract HandlingInfo findHandlingInfo(String messageBody);

	public abstract void updateInMsg(MsgInfo msgInfo);

	public abstract void updateOutMsg(MsgInfo msgInfo);

	public abstract MsgInfo findInMsgInfoById(Integer internalId);

	public abstract MsgInfo findOutMsgInfoById(Integer internalId);

	public abstract StorageResult<MsgInfo> getUnProcOutMsgsInNonCurrWorkSession();

	public abstract StorageResult<MsgInfo> getUnProcIncMsgsNonCurrWorkSession();

	public abstract void updateDeliveryReportInfo(
			DeliveryRepMsgInfo deliveryMsgInfo);

	public abstract DeliveryRepMsgInfo findDeliveryRepMsgInfoByExternalId(
			String externalId);

}